package com.tangbuzhi.chm.db;

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;

/**
 * http://git.oschina.net/tangbuzhi
 *
 * @author Tangbuzhi
 * @version V2.0
 * @Package com.tangbuzhi.chm
 * @Description: ${TODO}
 * @date: 2017/9/12
 */
public class Generator {
    public static void main(String[] args) {
        int version = 1;
        String defPck = "com.tangbuzhi.chm";
        //创建模式对象，指定版本号和自动生成的bean对象的包名
        Schema schema = new Schema(version, defPck);
        //指定自动生成的dao对象的包名,不指定则都DAO类生成在"test.greenDAO.bean"包中
        schema.setDefaultJavaPackageDao(defPck);
        //添加实体
        addEntity(schema);
        //自动生成的bean和dao存放的java-gen路径，注意要改成自己的
        //String outDir = "D:/workplace/chm/app/src/main/java_gen";
        String outDir = "D:\\workplace\\chm\\app\\src\\main\\java\\java_gen";
        //调用DaoGenerator().generateAll方法自动生成代码到之前创建的java-gen目录下
        try {
            new DaoGenerator().generateAll(schema, outDir);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void addEntity(Schema schema) {
        //添加一个实体，则会自动生成实体Entity类
        Entity entity = schema.addEntity("Entity");
        //指定表名，如不指定，表名则为Entity（即实体类名）
        entity.setTableName("student");
        //给实体类中添加属性（即给test表中添加字段）
        entity.addIdProperty().autoincrement();//添加Id,自增长
        entity.addStringProperty("name").notNull();//添加String类型的name,不能为空
        entity.addIntProperty("age");//添加Int类型的age
        entity.addDoubleProperty("score");//添加Double的score
    }
}
